;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Dominio para o problema do Jantar Surpresa do Daniel Weld
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

( define ( domain surprise_dinner-domain )
	( :requirements :strips )
	( :predicates
		( lixo )
		( maos_limpas )
		( silencio )
		( presente )
		( jantar )
	)

	( :action cozinhar
		:precondition ( maos_limpas )
		:effect ( jantar )
	)

	( :action embrulhar
		:precondition ( silencio )
		:effect ( presente )
	)

	( :action carregar_lixo
		:precondition ( lixo )
		:effect ( and
			( not ( lixo ) )
			( not ( maos_limpas ) )
		)
	)

	( :action triturar_lixo
		:precondition ( lixo )
		:effect ( and
			( not ( lixo ) )
			( not ( silencio ) )
		)
	)
)
